The present embodiments relate to wireless communication systems and, more particularly, to inverted spreading of a direct sequence spread spectrum (DSSS) smart utility network (SUN).
A smart utility network (SUN) is a low rate (40 kb/s to 1 Mb/s), low power wireless technology that is specifically designed to be used in utility metering applications, such as transmitting electric, gas, or water usage data from the meter(s) on the customer premises to a data collection point (hub) operated for the utility. For example, meters could be installed for each house in a residential neighborhood, and then the data could be sent every 15 minutes from each meter to a pole top data collection point. This data collection point could then be connected by fiber, copper wire, or wireless to a central office which collects all the data for a region. Data could either be sent directly from each meter to the collection point (star configuration), or it could be hopped from meter to meter until it reaches the collection point (mesh configuration).
There are different physical layers (PHYs) that can be used for SUN including FSK (frequency shift keying), DSSS (direct sequence spread spectrum), and OFDM (orthogonal frequency division multiplexing). Devices that are allowed into a closed utility network may be controlled by the utility or the network operator. A smart utility network (SUN) standard specification is also known as the IEEE 802.15.4 g specification and is incorporated by reference herein in its entirety.
A network may be set up in a mesh configuration where devices can communicate with neighbor devices rather than just with a hub. This helps to increase coverage since communication can be achieved even if the link directly to the hub is not good. However, this can increase the amount of traffic that goes through some devices since they have to include packet data from their neighbors as well as their own data. A mesh network may be appropriate for an urban or suburban area with a high density of meters and non-line-of-sight conditions between meters so that communication links between some meters and a hub is poor.
A star configuration is one where a hub communicates directly with each meter. This could be appropriate for rural environments when the density of meters is low so that there may not be a convenient neighbor to use as an intermediate hop. A mix between a star and mesh configuration can also be used in some deployments.
Since meters have a long life span such as 20 years, there may be many generations of meters deployed in a utility network. Earlier deployed meters are often referred to as legacy equipment. In one embodiment all legacy the devices in the utility network may communicate using FSK, often at a fixed data rate such as 50 kb/s, 100 kb/s or 150 kb/s.
The DSSS (direct sequence spread spectrum) PHY (physical layer) uses offset QPSK (O-QPSK) modulation with a chip rate of either 100 kchip/s, 1000 kchip/s, or 2000 kchip/s. The term offset means that the in-phase (I) and quadrature (Q) channels are offset by one chip time. For the 100 kchip/s mode, there is a preamble of 32 zeros with each bit spread by a spreading code of length 32. This results in a preamble of length 10240 microseconds with a repetition period of 320 microseconds. For the 1000 kchip/s mode, there is a preamble of 56 zeros with each bit spread by a spreading code of length 64. This results in a preamble of length 3584 microseconds with a repetition period of 64 microseconds. For the 2000 kchip/s mode, there is a preamble of 56 zeros with each bit spread by a spreading code of length 128. This results in a preamble of length 3584 microseconds with a repetition period of 64 microseconds.
A DSSS packet consists of a synchronization header (SHR), which contains the preamble and start frame delimiter (SFD), a physical layer header (PHR), and a physical layer payload (PSDU). For the 1000 kchip/s mode the SFD consists of 16 bits which are spread with a spreading code of length 64. The MAC header, payload, and CRC are all contained within the PSDU. The SFD bit sequence is 1 1 1 0 1 0 1 1 0 1 1 0 0 0 1 0.
The PHY header consists of 24 bits as is shown below:
Bit string index012345-1516-23Bit mappingSMRM1RM0R1R0L10-L0H7-H0Field nameSpreadingRate ModeReservedFrameHCSModeLength
The spreading mode (SM) field is set to 0 when DSSS is used for PSDU spreading. There are 4 rate modes for DSSS. Rate Mode 0 has a spreading factor of 16 and a data rate of 31.25 kb/s. Rate Mode 1 has a spreading factor of 4 (which is implemented with a (16,4) spreading code) and a data rate of 125 kb/s. Rate Mode 2 has a spreading factor of 2 (which is implemented with a (8,4) spreading code) and a data rate of 250 kb/s. Rate Mode 3 does not use spreading and has a data rate of 500 kb/s. For all rate modes the PSDU is coded with a rate 1/2, k=7 convolutional code.
The reserved bits are set to 0, and these may be used later to allow future evolution of the standard. The frame length is the length of the PSDU in octets, so the PSDU can contain up to 2047 octets (bytes). The header check sequence is an 8-bit CRC check for the header.
The structure of the transmitter chain is shown in FIG. 1 which is taken from IEEE 802.15.4 g specification. For the 902-928 MHz band the SHR contains the 56 preamble bits “all 0” and the 16 SFD bits. Bit differential encoding (BDE) is applied, but for the preamble there is no effect since the “0” bits remain “0” bits after differentially encoding with the previous bit. Then a 64-chip spreading is applied to the SHR. The PHR with the 24 bits shown above has 6 tails bits appended, and then a rate 1/2, k=7 convolutional code is applied, followed by an interleaver. Then a length 16 spreading code is applied. For the PSDU there 6 tails bits appended and then possibly some pad bits so that the interleaver has an integer number of blocks to process. Then the same rate 1/2, k=7 convolutional code is applied as was done for the PHR. After interleaving there are four possible rate modes that may be used. Rate mode 0 is the same spreading as is used for the PHR. There is no spreading for Rate mode 3. Rate mode 1 uses (16,4) spreading, so that for each 4 input bits there are 16 chips that are generated.
The chip timing for the O-QPSK modulator is shown in FIG. 2. The in-phase (I) and quadrature (Q) bits are offset in time by Tc, and 2 Tc is the duration in time of each bit.
For the 902-928 MHz band the O-QPSK pulse shape is a half sine wave pulse as shown in Equation [1] below.
                                          p            ⁡                          (              t              )                                =                      sin            ⁡                          (                                                π                  ⁢                                                                          ⁢                  t                                                  2                  ⁢                                                                          ⁢                                      T                    C                                                              )                                      ⁢                                  ⁢        for        ⁢                                  ⁢                              0            ≤            t            ≤                          2              ⁢                                                          ⁢                              T                C                                              ,                                          ⁢          and                ⁢                                  ⁢                  0          ⁢                                          ⁢          otherwise                                    [        1        ]            
While the preceding approach specified in IEEE 802.15.4 g provides wireless communications for smart utility networks, the present inventors recognize that still further improvements are possible. One problem with using a block code such as an (8,4) code to spread two bits or a (16,4) code to spread four bits is that it is computationally complex to generate soft decisions that are necessary for a Viterbi decoder. For example, a hard decision for a BPSK symbol is simply +1 or −1. However, a soft decision is a decimal value with a more positive value indicating a more probable +1 and a more negative value indicating a more probable −1. This soft decision is not only computationally difficult, it is also less accurate than desired. Accordingly, the preferred embodiments described below are directed toward this as well as improving upon the prior art.